///*******************************************************************************
// * Copyright (c) 2016 EfficiOS Inc., Jonathan Rajotte-Julien
// *
// * All rights reserved. This program and the accompanying materials are
// * made available under the terms of the Eclipse Public License v1.0 which
// * accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *******************************************************************************/
//
//package org.lttng.scope.lami.ui.views;
//
//import java.util.function.Predicate;
//
//import org.eclipse.jdt.annotation.Nullable;
//import org.eclipse.swt.widgets.Button;
//import org.lttng.scope.lami.core.aspect.LamiTableEntryAspect;
//
///**
// * Basic representation of a check box option for dialog.
// *
// * @author Jonathan Rajotte-Julien
// */
//class LamiAxisCheckBoxOption {
//
//    private final String fName;
//    private final boolean fDefaultValue;
//    private @Nullable Button fButton;
//    private boolean fValue;
//    private final Predicate<LamiTableEntryAspect> fAppliesToAspect;
//
//    /**
//     * Constructor
//     *
//     * @param name
//     *          The name of the check box. The actual string shown to user.
//     * @param defaultValue
//     *          The default value of the check box.
//     * @param validationPredicate
//     *          The predicate to check if an option can be applied to an aspect
//     */
//    public LamiAxisCheckBoxOption(String name, boolean defaultValue, Predicate<LamiTableEntryAspect> validationPredicate) {
//        fName = name;
//        this.fDefaultValue = defaultValue;
//        this.fValue = defaultValue;
//        fButton = null;
//        fAppliesToAspect = validationPredicate;
//    }
//
//    public String getName() {
//        return fName;
//    }
//
//    public boolean getDefaultValue() {
//        return fDefaultValue;
//    }
//
//    public void setButton(Button button) {
//        fButton = button;
//    }
//
//    public boolean getValue() {
//        return fValue;
//    }
//
//    public void updateValue() {
//        if (fButton != null) {
//            fValue = fButton.getSelection();
//        }
//    }
//
//    public void setButtonEnabled(boolean enabled) {
//        @Nullable Button button = fButton;
//        if (button != null) {
//            /* Only change state when necessary */
//            if (button.getEnabled() != enabled) {
//                button.setEnabled(enabled);
//                button.setSelection(fDefaultValue);
//            }
//        }
//    }
//
//    public boolean getButtonEnabled() {
//        if (fButton != null) {
//            return fButton.getEnabled();
//        }
//        return false;
//    }
//
//    public Predicate<LamiTableEntryAspect> getPredicate() {
//        return fAppliesToAspect;
//    }
//}